ecshop通过hprose调用go语言方法

2015-03-12 10:26 来源:www.chinab4c.com 作者:ecshop专家

   ecshop通过hprose调用go语言方法,我们一般都会通过golang去实现ecshop的采集功能,然后通过中间件hprose去让php调用golang的采集接口。这个时候就必须用到hprose中间件了,我们可以通过该中间件来实现该算法。下面将列举个简单的例子。

   1:首先建立golang的hprose服务端

      package main

import (
    "github.com/hprose/hprose-go/hprose"
    "net/http"
    "reflect"
)

type User struct {
    Name string `json:"n"`
    Age  int    `json:"a"`
    HaHa string `json:"-"`
}

func getUser(name string, age int) *User {
    return &User{Name: name, Age: age, HaHa: "Don't Serialize Me!"}
}
func getSum(a,b int) int {
    return a+b
}
func main() {
    hprose.ClassManager.Register(reflect.TypeOf(User{}), "User", "json")
    service := hprose.NewHttpService()
    service.AddFunction("getUser", getUser)
    service.AddFunction("getSum", getSum)
    service.SetFilter(hprose.JSONRPCServiceFilter{})
    http.ListenAndServe(":8080", service)
}
2:运行go run test.go

3:建立php客户端调用

<?php
    require_once("php5/HproseHttpClient.php");
    $client = new HproseHttpClient('http://127.0.0.1:8080');
    $res = $client->getUser("a",2);
    echo $client->getSum(3,4);
    print_r($res->n);
?>

来源:http://www.chinab4c.com